package com.xq.datatype;

import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.List;

/**
 * @author xq
 * @version 1.0
 * @date 2021/4/28 9:51
 * @description 测试Redis中数据类型Hash
 */
public class TestRedisHash {
    public static void main(String[] args) {
        // 创建连接
        Jedis jedis = new Jedis("192.168.2.120", 6379);
        // 设置密码，有密码设置，所有服务器都没设置
        //jedis.auth("123456");
        HashMap<String, String> map = new HashMap<>();
        map.put("name","xq");
        map.put("age","19");
        map.put("birth","2001/11/14");
        map.put("height","180");
        // Hash赋值
        jedis.hset("myhash",map);
        // 获取根据字段获取值
        System.out.println("根据字段名获取name的值："+jedis.hget("myhash", "name"));
        // 删除一个字段
        jedis.hdel("myhash","birth");
        // 获取根据key取多个值
        System.out.println("获取根据key取多个值："+jedis.hgetAll("myhash"));
        // 根据键添加多个字段
        HashMap<String, String> map2 = new HashMap<>();
        map2.put("phone","10086");
        map2.put("email","29121521@qq.com");
        jedis.hmset("myhash2",map2);
        System.out.println("根据键获取多个字段的值：");
        // 根据键获取多个字段的值
        List<String> stringList = jedis.hmget("myhash2", "phone", "email");
        for (String s : stringList) {
            System.out.println(s);
        }
    }
}
